#include <bits/stdc++.h>
using namespace std;
int YI = 200;
int k;

//不优化，一定超时， 如何记忆化，需要调试
// int f[20][100000]; // 从 i可是搜索和是j 的可能的数量。如何记忆化搜索

// sum 剩余量
int dfs(string &str, int depth, bool last, int current, int sum) {
  // if (depth %2==0&&last == false && f[current][YI + sum] != -1)
  //   return f[current][YI + sum];

  if (depth >= str.size()) {
    if (sum == 0)
      return 1;
    else
      return 0;
  }
  int res = 0;
  if (last == false) {
    for (int i = 0; i <= 9; i++) {
      int s = (depth % 2 == 0) ? sum - i : sum + i;
      res += dfs(str, depth + 1, false, i, s);
    }
  } else {
    int e = str[depth] - '0';
    for (int i = 0; i <= e; i++) {
      bool f = (i == e) ? true : false;
      int s = (depth % 2 == 0) ? sum - i : sum + i;
      res += dfs(str, depth + 1, f, i, s);
    }
  }
  // if (depth % 2 == 0&& last == false)
  //   f[current][YI + sum] = res;
  return res;
}

int work(string &str) {
  // memset(f, -1, sizeof(f));
  if (str.size() % 2 != 0) {
    str = '0' + str; // 成双成对
  }
  int ans = dfs(str, 0, true, -1, k);
  return ans;
}

int main() {

  string l, r;
  cin >> l >> r >> k;
  int temp = stoi(l);
  l = to_string(temp - 1);

  int a = work(l);
  int b = work(r);

  cout << b - a;
  // cout << " " << b << " " << a;

  return 0;
}